@@ -21,6 +21,8 @@ module Agents |
||
| 21 | 21 |
* `this.options(key)` |
| 22 | 22 |
* `this.log(message)` |
| 23 | 23 |
* `this.error(message)` |
| 24 |
+ * `this.escapeHtml(htmlToEscape)` |
|
| 25 |
+ * `this.unescapeHtml(htmlToUnescape)` |
|
| 24 | 26 |
MD |
| 25 | 27 |
|
| 26 | 28 |
def validate_options |
@@ -102,7 +104,8 @@ module Agents |
||
| 102 | 104 |
memory.to_json |
| 103 | 105 |
end |
| 104 | 106 |
end |
| 105 |
- context["unescapeHTML"] = lambda { |a, x| CGI.unescapeHTML(x) }
|
|
| 107 |
+ context["escapeHtml"] = lambda { |a, x| CGI.escapeHTML(x) }
|
|
| 108 |
+ context["unescapeHtml"] = lambda { |a, x| CGI.unescapeHTML(x) }
|
|
| 106 | 109 |
|
| 107 | 110 |
context.eval(code) |
| 108 | 111 |
context.eval("Agent.#{js_function}();")
|
@@ -159,8 +162,12 @@ module Agents |
||
| 159 | 162 |
doError(message); |
| 160 | 163 |
} |
| 161 | 164 |
|
| 162 |
- Agent.unescapeHTML = function(html) {
|
|
| 163 |
- return unescapeHTML(html); |
|
| 165 |
+ Agent.escapeHtml = function(html) {
|
|
| 166 |
+ return escapeHtml(html); |
|
| 167 |
+ } |
|
| 168 |
+ |
|
| 169 |
+ Agent.unescapeHtml = function(html) {
|
|
| 170 |
+ return unescapeHtml(html); |
|
| 164 | 171 |
} |
| 165 | 172 |
|
| 166 | 173 |
Agent.check = function(){};
|
@@ -162,9 +162,9 @@ describe Agents::JavaScriptAgent do |
||
| 162 | 162 |
end |
| 163 | 163 |
end |
| 164 | 164 |
|
| 165 |
- describe "unescaping HTML" do |
|
| 166 |
- it "can unescape html with this.unescapeHTML in the javascript environment" do |
|
| 167 |
- @agent.options['code'] = 'Agent.check = function() { this.createEvent({ message: this.unescapeHTML(\'test "escaping" <characters>\'), stuff: { foo: 5 } }); };'
|
|
| 165 |
+ describe "escaping and unescaping HTML" do |
|
| 166 |
+ it "can escape and unescape html with this.escapeHtml and this.unescapeHtml in the javascript environment" do |
|
| 167 |
+ @agent.options['code'] = 'Agent.check = function() { this.createEvent({ escaped: this.escapeHtml(\'test \"escaping\" <characters>\'), unescaped: this.unescapeHtml(\'test "unescaping" <characters>\')}); };'
|
|
| 168 | 168 |
@agent.save! |
| 169 | 169 |
expect {
|
| 170 | 170 |
expect {
|
@@ -172,7 +172,7 @@ describe Agents::JavaScriptAgent do |
||
| 172 | 172 |
}.not_to change { AgentLog.count }
|
| 173 | 173 |
}.to change { Event.count}.by(1)
|
| 174 | 174 |
created_event = @agent.events.last |
| 175 |
- expect(created_event.payload).to eq({ 'message' => 'test "escaping" <characters>', 'stuff' => { 'foo' => 5 }})
|
|
| 175 |
+ expect(created_event.payload).to eq({ 'escaped' => 'test "escaping" <characters>', 'unescaped' => 'test "unescaping" <characters>'})
|
|
| 176 | 176 |
end |
| 177 | 177 |
end |
| 178 | 178 |
|